1. Field of the Invention
The present invention, generally, relates to image texture generators and, more particularly, to a new and improved system for handling texture patterns used with digital computer graphics.
Image generators are receiving ever widening use in industry today. One use is to produce imagery for real time training, such as, for example, in flight simulation apparatus. New uses are even in amusement apparatus.
Image generators produce perspective images from stored mathematical descriptions of objects, usually polygon approximations of shapes of real world objects. It has been found that a key to enhancing such imagery is to provide a capability of texturing for selected surfaces of the polygon objects, as a variation to what otherwise would be uniform appearances of these polygon surfaces.
An image generator will store a texture pattern in a local Random Access Memory (RAM) for fast access when needed for texturing selected surfaces. Texture patterns are in a two dimensional array of a sample of such a pattern, wherein each texture sample is called a "texel" and contains one or more parameters describing the texture at that point.
For example, a texel for a color image may have red, green and blue parameters. An image generator establishes a mathematical correspondence between the points of the displayed polygon (the pixels) and the texels of a stored texture pattern, so that the pattern appears attached to and a part of the polygon.
A color texture pattern may be applied to a modelled polygon object so the pattern appears attached in the manner of paint or wallpaper. For example, an insignia stored as a color texture pattern may be applied to an aircraft modelled by polygons.
A variety of different parameters may be stored in each texel. In addition to three color components, a translucency factor is included sometimes. The translucency factor is a number between zero and one that represents how transparent or how opaque the polygon surface should be rendered by such an image generator, ranging from completely transparent to completely opaque.
Varying the translucency factor along with color provides an effective way of modelling plant foliage effects and to provide windows in buildings. Smoke and cloud effects also are modelled effectively using a translucency parameter in texture.
Since most objects in the natural world have textured surfaces, realistic imagery requires that many texture patterns be stored in an image generator. This requires a great deal of high speed storage, which can become quite expensive.
For example, in military training situations, it is highly desirable to store and use images from satellites or aerial photography as texture patterns, so that the terrain from the image generator will appear as much as possible like the terrain of the real world. A resolution of one foot in a ground image requires more than 25 million texels per square mile.
Traditionally, five to eight bits have been used for each color component and for the translucency factor. Thus, about 50 to 75 million bytes of data are required per square mile of terrain, and proportionately, more bytes than this are required for patterns using translucency.
Storage of these data clearly places a cost burden on RAM storage in the image generator that is required for real time texturing of polygons in a view. For large areas, required for military exercises, it also places a burden on data storage requirements and retrieval rates. Therefore, there are cost and engineering incentives to minimize the data storage requirements for the texture data.
Several image data compression schemes are known, but heretofore, none of these have been found suitable for dealing with the problem of compressing texture patterns. Traditional compression schemes take advantage of the commonalities between neighbors in the arrays of values to be compressed, and they also take advantage of the general need to compress and restore a whole image at once.
Because a textured polygon may be viewed from any angle and be partially occluded, texel values may be accessed from part of the texture pattern at any time. Therefore, traditional schemes using the whole image cannot be used. Moreover, since the image is required to keep up with high resolution real time video, the decompression hardware must be kept simple.
In fact, common texture implementations require the retrieval of four to eight texels concurrently, so that an output value can be derived by interpolation. This puts additional pressure on any decompression scheme for texture patterns to work effectively.